package cn.tedu.em.complaint.service;

import cn.tedu.em.common.pojo.complaint.dto.ComplaintAddNewDTO;
import cn.tedu.em.common.pojo.complaint.dto.ComplaintUpdateDTO;
import cn.tedu.em.common.pojo.complaint.vo.ComplaintListItemVO;
import cn.tedu.em.common.pojo.complaint.vo.ComplaintStandardVO;

import java.util.List;

public interface IComplaintService {

    /**
     * 投诉“是否处理”的状态文本
     */
    String DISPOSE_TEXT[] = {"未处理", "已处理"};

    /**
     * 添加投诉的业务逻辑层方法
     * @param complaintAddNewDTO
     */
    void addNew(ComplaintAddNewDTO complaintAddNewDTO);
    
    /**
     * 删除投诉
     * @param id 尝试删除的投诉数据的ID
     */
    void delete(Long id);

    /**
     * 未处理
     *
     * @param id 尝试未处理的投诉的id
     */
    void SetUndispose(Long id);

    /**
     * 已处理
     *
     * @param id 尝试已处理的投诉的id
     */
    void    SetDispose(Long id);

    /**
     * 修改投诉数据
     * @param id 被修改的投诉数据的ID
     * @param complaintUpdateDTO 投诉的新数据
     */
    void updateInfoById(Long id, ComplaintUpdateDTO complaintUpdateDTO);

    /**
     * 根据ID查询投诉数据的详情
     *
     * @param id 投诉ID
     * @return 匹配的投诉数据的详情，如果没有匹配的数据，则返回null
     */
    ComplaintStandardVO getStandardById(Long id);

    /**
     * 查询投诉数据列表
     *
     * @return 投诉数据列表
     */
    List<ComplaintListItemVO> list();
}
